This application is based on Japanese Patent Application No. 9-63282, filed on Mar. 17, 1997, the content of which is cited herein by reference.
The present invention relates to an apparatus for controlling generation/editing of, e.g., a CG animation.
Improvement in processing performance of personal computers (PCs) allows to handle a real-time computer graphic animation (CG animation) on the PCs. Accordingly, the number of CG applications which run on the PCs increases, and general individuals are having more opportunities for generating/enjoying CG contents. Along with the increase in opportunities, various applications for generating a CG animation on a PC have been invented.
A means for generating an animation on the PC is based on a three-dimensional coordinate data set (three-dimensional CG animation) or a bitmap data set (two-dimensional CG animation).
When a CG animation is to be generated on the basis of a bitmap data set, bitmap data sets corresponding to various scenes are prepared, and these bitmap data are switched and displayed, thereby displaying a CG animation. Sometimes, a plurality of bitmap data called sprites are prepared, and these sprites are superposed and displayed to make one scene. In this case, the animation is generated by changing the sprite display position in units of scenes or displaying a plurality of sprites corresponding to each scene while switching them.
Since the two-dimensional CG animation is constituted by bitmap data sets, each scene can be generated by simply drawing a picture. Hence, anyone can generate the two-dimensional CG animation although a long time is required. In addition, since a bitmap image merely need be displayed, the processing amount in reproducing the animation is constant independently of the precision or complexity (contents of the bitmap image) of the display object of each scene.
However, to generate a two-dimensional CG animation having a complex motion intended by the user, each bitmap image must be generated, and this operation requires much time. If only a few bitmap images need be prepared and simply moved as sprites, or switched and displayed, the two-dimensional CG animation can be generated in a relatively short time, as a matter of course, though this results in a considerably simple animation.
Even if an enormous quantity of bitmap image data can be prepared, a large-capacity storage unit is required to store all the bitmap data. Additionally, to efficiently compress these data, dedicated hardware having an encoding function such as objective MPEG is also required.
On the other hand, a means called "warping" capable of deforming one bitmap image as an original image to generate various scenes is available. As shown in FIGS. 1A and 1B, in warping, points called control points are arranged in a matrix on the original image. The positions of control points are changed to deform a bitmap image positioned in an area defined by the control points in accordance with the deformation in the area defined by the control points, thereby generating a new scene.
However, the warping means is a technique of generating a new scene by deforming a mesh-like rectangular area defined by control points after all, so considerable limitations are imposed on a scene to be generated. For example, the movable range of a control point is limited to an area defined by adjacent control points. Therefore, as shown in FIG. 2, only an image area corresponding to the hand of a human figure can hardly be largely moved. In addition, when the moved hand portion overlaps the face portion, the shape of the image area corresponding to the face cannot be kept unchanged.
To avoid this, the original image must be divided into sprites comprising a plurality of parts for the hand, face, and the like. Therefore, one existing bitmap original image to be used must be divided into a plurality of sprites in advance, so cumbersome preprocessing must be performed.
Even when warping processing is to be forcibly performed, although no desired scene can be obtained, an enormous number of control points must be operated one by one to generate a CG animation of, e.g., the articulated motion of a hand. For this purpose, the position of each control point must be moved in consideration of conditions to be stored such as the balance of shape of the hand, so this means is not practical.
A means called morphing as an application of warping can generate an interpolated image between two bitmap images to generate a new image. As shown in FIGS. 3A and 3B, in morphing, control points indicating the positional relationship between two bitmap images must be designated in each of the two original images. In FIG. 3B, control points a1 and b1 which correspond the hand positions in a scene A and a scene B to each other are designated. An internally dividing point m1 is determined on the straight line connecting the control points a1 and b1. In the scene A, the control point a1 is changed to m1. In the scene B, the control point b1 is changed to m1. After this, warping processing is performed. With this processing, the positions of hands in these scenes can be moved to almost the same position. When the two resultant warping scenes are blended at an appropriate ratio, an interpolation scene can be automatically generated.
When an intermediate scene is generated and continuously displayed while gradually moving the internally dividing point m1 along the straight line to the control point b1, a CG animation changing from the scene A to the scene B is obtained.
However, the morphing means is an application of the warping means after all, so the scene which can be generated is limited, like the warping means. For example, even when a scene of arms outstretched and a scene of arms crossing each other are subjected to morphing, no natural animation can be generated because of the limitation on the movable range of control points in the warping means. In addition, control points representing the same position in two images must be set in one-to-one correspondence. For this reason, when a lot of control points are set, a long time is needed only to grasp the correspondence.
Furthermore, to generate a CG animation of another articulated motion, an operation of designating, as a control point, the positional relationship between two prepared bitmap images which are different only in the manner of bending arms must be performed, and a considerably large number of control points must be designated one by one to realize a natural animation. For this reason, the morphing means is not practical.
As described above, to generate an animation by warping or morphing, control points must be arranged on the original image and operated. This operation is complex and inconvenient for a general user who wants to easily generate an animation.
To allow everyone to generate an animation only by an intuitive and simple operation, a means for generating an animation with any motion from one bitmap image is necessary. However, the above-described conventional CG animation generation means based on the bitmap data set cannot meet this requirement.
As described above, the conventional CG animation generating apparatus based on the bitmap data set cannot generate an animation having an arbitrary motion only by an intuitive and simple operation for one original bitmap image or a bitmap image as a sprite constituting the original image.